//package com.dreamsail.core.frame;
//
//import com.dreamsail.core.model.system.HeadMessage;
//import lombok.Data;
//import org.apache.commons.lang3.StringUtils;
//import org.springframework.boot.jdbc.DataSourceBuilder;
//import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
//
//import javax.sql.DataSource;
//import java.sql.Connection;
//import java.sql.ResultSet;
//import java.sql.Statement;
//import java.util.HashMap;
//import java.util.Map;
//
//
///**
// * 动态数据源
// */
//@Data
//public class DynamicDataSource extends AbstractRoutingDataSource {
//
//    private DataSource baseDataSource;
//
//    private Map<Long, DataSource> dataSourceMap = new HashMap<>();
//
//
//    @Override
//    protected String determineCurrentLookupKey() {
//        return null;
//    }
//
//    @Override
//    protected DataSource determineTargetDataSource() {
//        // 获取
//        HeadMessage headMessage = ContentManager.getHeadMessage();
//        if (headMessage == null || headMessage.getConsumeId() == null) {
//            return baseDataSource;
//        }
//        // 动态数据源获取
//        return getDataSourceByCosumeName(headMessage.getConsumeId());
//    }
//
//    public DataSource getDataSourceByCosumeName(Long consumeId) {
//        if (dataSourceMap.containsKey(consumeId)) {
//            return dataSourceMap.get(consumeId);
//        }
//
//        try (Connection connection = baseDataSource.getConnection()) {
//            Statement statement = connection.createStatement();
//            ResultSet resultSet = statement.executeQuery("SELECT ip,PORT,db_name,user_name,PASSWORD FROM consume_connection where consume_id = " + consumeId);
//            DataSource dataSource = null;
//            while (resultSet.next()) {
//                // Ip
//                String ip = resultSet.getString(1);
//                // 端口
//                Integer port = resultSet.getInt(2);
//                // 库名
//                String dbName = resultSet.getString(3);
//                // 用户名
//                String userName = resultSet.getString(4);
//                // 密码
//                String passWord = resultSet.getString(5);
//
//                dataSource = DataSourceBuilder
//                        .create()
//                        .driverClassName("com.mysql.cj.jdbc.Driver")
//                        .password(StringUtils.isBlank(passWord) ? "123456" : passWord)
//                        // TODO 设置url
//                        //.url()
//                        .username(StringUtils.isBlank(userName) ? "root" : userName)
//                        .build();
//            }
//
//
//            if (dataSource == null) {
//
//            }
//
//            dataSourceMap.put(consumeId, dataSource);
//            return dataSource;
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//
//        return null;
//    }
//
//
//}
